package priority;

import java.util.PriorityQueue;

/**
 * 最后一块石头的重量
 */
public class Day18 {
    public int lastStoneWeight(int[] stones) {
        // 创建大根堆
        PriorityQueue<Integer> heap = new PriorityQueue<>((a, b) -> b - a);
        //将数组中的数据都放入到大根堆中
        for(int stone : stones) {
            heap.offer(stone);
        }

        // 最后要留下一个数据，所以判断条件是 堆里面数据的个数大于1
        while(heap.size() > 1) {
            // 进行处理
            int y = heap.poll();
            int x = heap.poll();

            if(x != y) {
                heap.offer(y - x);
            }
        }

        return heap.isEmpty() ? 0 : heap.peek();
    }
}
